import { Application } from "egg";

export default (app: Application) => {
  const { controller, router } = app;

  // === 基础路由 ===

  // 健康检查接口
  router.get("/health", controller.home.health);

  // Socket.io 相关路由
  router.post("/socket/init", controller.socket.init);
  router.get("/socket/status", controller.socket.status);

  // === SSO单点登录相关路由 ===

  // 用户注册接口
  // POST /api/sso/register
  // 请求体: { username, password }
  router.post("/api/sso/register", controller.sso.register);

  // 用户登录接口
  // POST /api/sso/login
  // 请求体: { username, password }
  router.post("/api/sso/login", controller.sso.login);

  // 登录状态验证接口
  // GET /api/sso/validate
  // 用于子系统验证用户登录状态，验证失败返回登录页面地址
  router.get("/api/sso/validate", controller.sso.validate);

  // 用户登出接口
  // POST /api/sso/logout
  // 清除Session和Cookie
  router.post("/api/sso/logout", controller.sso.logout);

  // 获取当前用户信息接口
  // GET /api/sso/userinfo
  // 返回当前登录用户的基本信息
  router.get("/api/sso/userinfo", controller.sso.getUserInfo);

  // === 文档相关接口 ===
  // 文档列表
  router.get("/api/documents", controller.document.list);
  // 创建文档（生成ID）
  router.post("/api/documents", controller.document.create);
  // 文档详情
  router.get("/api/documents/:documentId", controller.document.getById);
  // 保存文档内容
  router.post("/api/documents/:documentId/save", controller.document.save);

  // === 用户相关接口 ===
  // 获取所有用户（用于邀请协作）
  router.get("/api/users", controller.user.listAll);
  
  // === 协作邀请 ===
  // 邀请用户参与协作（默认同意）
  router.post("/api/documents/:documentId/invite", controller.document.invite);
};
